//
// Created by denglibin on 2019/7/10 0010.
//
/*******求Pi******/
/****
 *
 * 单位圆内接正多边形，当边长无穷大时，多边形的周长与圆相等
 * 多边形边长 y(n) 满足关系 y(n)^2 = 2- sqrt(4-y(n-1)^2) ( n=1表示6边形，n=2表示12边形(6*2^1)，n=3表示24边形（6*2^2）.... )
 * y(1) = 1; (单位圆内接正6边形边长为1)
 **/

#include <math.h>
#include <stdio.h>

/**
 *
 * @param n : 为6的倍数 n=1表示6边形，n=2表示12边形(6*2^1)，n=3表示24边形（6*2^2）...
 * @return
 */
static double pi(int n){
    double  pi;
    double sqrt_y = 1; //边长的平方
    for(int i = 1; i < n; i++){
        sqrt_y = 2 - sqrt(4 - sqrt_y);
    }
    double c = sqrt(sqrt_y) * (6 * pow(2, n - 1)); //多边形周长 = 边长 * 边数
    pi =  c / 2;
    return pi;
}

int main7(){
    printf("%f\n", pi(10)); //3.141592
    return 0;
}